package com.zhuang.designpattern.bulider;

import com.zhuang.designpattern.bulider.ceiling.LevelOneCeiling;
import com.zhuang.designpattern.bulider.ceiling.LevelTwoCeiling;
import com.zhuang.designpattern.bulider.coat.DuluxCoat;
import com.zhuang.designpattern.bulider.coat.LiBangCoat;
import com.zhuang.designpattern.bulider.floor.ShengXiangFloor;
import com.zhuang.designpattern.bulider.tile.DongPengTile;
import com.zhuang.designpattern.bulider.tile.MarcoPoloTile;

/**
 * description: Builder
 * date: 2022/9/11 12:43
 * author: Zhuang
 * version: 1.0
 */
public class Builder {

    public IMenu levelOne(Double area) {
        return new DecorationPackageMenu(area, "豪华欧式")
                .appendCeiling(new LevelTwoCeiling())    // 吊顶，⼆二级顶
                .appendCoat(new DuluxCoat())             // 涂料料，多乐⼠士
                .appendFloor(new ShengXiangFloor());     // 地板，圣象
    }

    public IMenu levelTwo(Double area) {
        return new DecorationPackageMenu(area, "轻奢⽥田园")
                .appendCeiling(new LevelTwoCeiling())   // 吊顶，⼆二级顶
                .appendCoat(new LiBangCoat())           // 涂料料，⽴立邦
                .appendTile(new MarcoPoloTile());       // 地砖，⻢马可波罗
    }

    public IMenu levelThree(Double area) {
        return new DecorationPackageMenu(area, "现代简约")
                .appendCeiling(new LevelOneCeiling())   // 吊顶，⼆二级顶
                .appendCoat(new LiBangCoat())           // 涂料料，⽴立邦
                .appendTile(new DongPengTile());        // 地砖，东鹏
    }

}
